草庐IT

c++ - QML Qt openUrlExternally

全部标签

c++ - 我应该使用 C 类型 (uint8_t/.../uint64_t) 还是 (u_int8_t/.../u_int64_t)?

我的GNU-Linux平台(debianstretch)有C类型u_int8_t、u_int16_t、u_int32_t和u_int64_t在文件sys/types.h中定义,同时uint8_t、uint16_t、uint32_t和uint64_t在stdint.h中定义。我发现这些类型在练习X86-64汇编语言和与C交互的过程中很有用。有什么理由让我更喜欢一个头文件而不是另一个(“最佳实践”、可移植性等)?C++的答案有什么不同吗? 最佳答案 stdint.h是标准C,它映射到标准C++中的cstdint。sys/types.h不

c++ - 你能从 C++ 调用 Ada 函数吗?

我是一个完全的Ada新手,虽然我在HS期间使用Pascal2-3年。IIRC,可以从C/C++调用Pascal编译函数。是否可以从C++调用用Ada编写的过程和函数? 最佳答案 根据这个oldtutorial,应该是可以的。然而,如图thisthread,您必须小心Ada函数的C++extern"C"定义。 关于c++-你能从C++调用Ada函数吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/q

c++ - 枚举结构的成员?

有没有办法在C++或C中枚举结构(struct|class)的成员?我需要获取成员名称、类型和值。我之前在一个变量是全局范围的小项目中使用过以下示例代码。我现在遇到的问题是需要将一组值从GUI复制到对象、文件和VM环境。我可以创建另一个“穷人的”反射系统,或者希望创建一些我还没有想到的更好的东西。有没有人有什么想法?编辑:我知道C++没有反射。unionvariant_t{unsignedintui;inti;doubled;char*s;};structpub_values_t{constchar*name;unionvariant_t*addr;chartype;//'I'isin

c++ - 开发类似python的小型语言时的缩进控制

我正在使用flex、byacc(用于词法和解析)和C++开发一种类似Python的小型语言,但我有几个关于范围控制的问题。就像python它使用空格(或制表符)进行缩进一样,不仅如此,我还想实现索引中断,例如,如果您在另一个while循环内的while循环中键入“break2”,它不仅会从最后一个循环中断,但也从第一个循环中断(因此中断后的数字2)等等。例子:while1while1break2'helloworld'!!#willneverreachthis."!!"outputswithanewlineend'helloworldagain'!!#alsowillneverreac

c++ - C++ 'new' 关键字和 C

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:UsethekeywordclassasavariablenameinC++在库的C头文件中,我使用的变量之一名为“new”。不幸的是,我在C++项目中使用这个库,并且“new”作为变量名的出现吓坏了编译器。我已经在使用extern"C"{#include},但这在这方面似乎没有帮助。我是否必须要求库开发人员更改该变量的名称,即使从他的角度来看,作为C开发人员,代码绝对没问题,因为“new”不是C关键字?

.net - 如何将 C 库编译成 .Net dll?

我们是否可以通过编译包含类似代码的cpp项目将C库编译为.Netdll(包含并打开对所有C库函数的访问)extern"C"{#include}用/clr:pure参数与VS?(VS10)或者我们应该做些更棘手的事情? 最佳答案 您可能对此感兴趣:CompilingyourCcodeto.NET创建C编译器occil.exe从c代码创建.NETdll,例如stack.c第1步:将stack.c构建为IL代码occil/ostackdll.il/c/Wd/9/NStackLib.Stackstack.c第2步:构建生成的IL代码到.NE

c++ - 静态变量指针?

这是非法/危险的吗?int*static_nonew(){staticintn=5;return&n;}编译器似乎没有问题,但是指针位置本身是否受到保护,不会在其他人需要内存时被覆盖?编辑:更多解释我为什么问这个问题。注意:我正在用C++编程,我只是将它标记为C,因为它似乎更像是C而不是C++问题。我有一个应该返回静态map的类。我只希望在整个程序中初始化此map一次,因为似乎不需要多次执行此操作。出于这个原因,我打算做这样的事情:staticstd::maptransitions;staticTransitiontrans1(transitions,...);staticTransi

c++ - 插件系统如何工作?

我正在做一个项目,我会发现一个有用的基本插件系统。本质上,我创建基类并可以将这个基类提供给插件开发人员。然后开发人员覆盖它并覆盖方法。然后这就是我变得有点不清楚的地方。它是如何工作的?在哪里可以找到与此类系统开发相关的文档?谢谢 最佳答案 我所知道的插件系统都使用动态库。基本上,您需要在系统内核和插件之间定义一个小而有效的握手。由于没有C++ABI,插件必须要么只使用CAPI,要么使用与系统内核完全相同的编译器(可能是编译器版本)。最简单的可想到的协议(protocol)是一个函数,所有插件开发人员都必须提供该函数,它返回从您的基类

c++ - 对于 malloc() 失败是否有等效的 set_new_handler()?

在C++中,你can安排一个函数在new失败时调用。有没有办法在malloc失败时调用一个函数?假设正在从我不想更改的第三方库调用malloc。我认为没有可移植的答案,所以我很乐意接受特定于平台的答案。我在某些平台上使用Linux+uclibc,在其他平台上使用Linux+glibc。我打算使用setrlimit限制malloc可以返回的内存量。 最佳答案 malloc如果失败则返回NULL。您应该处理它,以及CRT内存函数的其他故障(realloc尤其容易出错)。在一般情况下,我认为您必须将内存的所有CRT使用包装在您自己设计的函

c++ - 简单解析题

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:Couldanyoneexplaintheseundefinedbehaviors(i=i+++++i,i=i++,etc…)UndefinedBehaviorandSequencePoints(C++FAQentry)在C和C++中,表达式x++++++y是如何解析的?作为x+++++y还是作为x+++++y?